#include <stdio.h>
//寻找峰值
int findPeakElement(int* nums, int numsLen)
{
    // write code here
    int i = 0;
    int digit = 0;//存峰值索引
    int max = nums[0];//假设数组最大值为第一个元素
    if (numsLen == 1)
    {
        return 0;
    }
    else if (numsLen == 2 || numsLen == 3)
    {

        for (i = 1; i < numsLen; i++)
        {
            if (max < nums[i])
            {
                max = nums[i];
                digit = i;
            }
        }
        return digit;
    }
    else
    {
        //找到数组中的最大值
        for (i = 0; i < numsLen; i++)
        {
            if (nums[i] > max)
            {
                max = nums[i];
                digit = i;
            }

        }
        //如果最大值满足以下条件则返回最大值索引
        if (digit == 0 || digit == numsLen - 1 || 2 * max > nums[digit + 1] + nums[digit - 1])
        {
            goto end;
        }
        //反之将最大值修改，寻找下一个最大值
        nums[digit] = 0;
    }
end: return digit;
}

int main()
{
    int nums[] = { 1,2,3,4,5,4 };
    int numsLen = sizeof(nums) / sizeof(nums[0]);
    int ret = findPeakElement(nums, numsLen);
    printf("%d", ret);
    return 0;
}